revision :
Look at it gooo!
code:
<div id="one">
<div class="two">
<button class="btn" id="lightSwitch" type="button" onclick="switchLight()">Light</button>
<button class="btn" id="darkSwitch" type="button" onclick="switchDark()">Dark</button>
<button class="btn" id="autoSwitch" type="button" onclick="switchAuto()">Auto</button>
</div>
<h3>The color scheme is </h3>
<div class="two">
My color scheme is always dark.
</div>
<h4>Or choose vastly different schemes for light and dark modes!</h4>
<p><b>Look at it gooo!</b></p>
</div>
<style>
#one{--black: oklch(0% 0 0); --white: oklch(100% 0 0); color-scheme: light dark; --background: light-dark(var(--white), var(--black)); --text: light-dark(var(--black), var(--white));}
#one {background-color: var(--background); color: var(--text);}
div.two {color-scheme: dark; background-color: var(--background); color: var(--text); }
#one p {color: light-dark(DarkGreen, Lavender); background-color: light-dark(Pink, SaddleBrown); padding: 1em;}
#one > h3 {--scheme: "light";}
#one > h3::after {content: var(--scheme);}
@media (prefers-color-scheme: dark) {
h3 {--scheme: "dark";}
}
</style>
<script>
const one = document.querySelector('#one');
function switchDark() {
one.style.setProperty("color-scheme", "dark");
}
function switchLight() {
one.style.setProperty("color-scheme", "light");
}
function switchAuto() {
one.style.setProperty("color-scheme", "light dark");
}
</script>
Here's some themed text in a themed box :) (OKLCH)
Here's some themed text in a themed box :) (HSL)
code:
<div id="three" style="color-scheme: light dark">
<div class="three">
<button class="btn-1" id="lightSwitch1" type="button" onclick="switchLight1()">Light</button>
<button class="btn-1" id="darkSwitch1" type="button" onclick="switchDark1()">Dark</button>
<button class="btn-1" id="autoSwitch1" type="button" onclick="switchAuto1()">Auto</button>
<label for="hueSlider"> Hue:</label>
<input id="hueSlider" type="range" min="0" max="360" value="222">
</div>
<div class="three">Theme color,
<br><div class="oklch"></div> in OKLCH color space
<br><div class="hsl"></div> in HSL color space
</div>
<p class="oklch">Here's some themed text in a themed box :) (OKLCH)</p>
<p class="hsl">Here's some themed text in a themed box :) (HSL)</p>
</div>
<style>
#three {color: CanvasText;background-color: Canvas; padding: 1rem;--theme-oklch: oklch(50% 0.25 var(--hue, 222)); --theme-hsl: hsl(var(--hue, 222) 75% 50%);}
#three > div {margin-block: 1rem 0;}
.three > div{display: inline-block; width: 2rem; height: 1rem;border: 1px solid;}
div.oklch {background-color: var(--theme-oklch);}
div.hsl {background-color: var(--theme-hsl);}
p:not(.date) {padding: 1rem;}
p.oklch {color: color-mix(in oklab, CanvasText 75%, var(--theme-oklch)); background-color: color-mix(in oklab, Canvas 75%, var(--theme-oklch));}
p.hsl {color: color-mix(in oklab, CanvasText 75%, var(--theme-hsl));background-color: color-mix(in oklab, Canvas 75%, var(--theme-hsl));}
</style>
</style>
<script>
const three = document.querySelector('#three');
const hueSlider = document.querySelector('#hueSlider');
function switchDark1() {
three.style.setProperty("color-scheme", "dark");
}
function switchLight1() {
three.style.setProperty("color-scheme", "light");
}
function switchAuto1() {
three.style.setProperty("color-scheme", "light dark");
}
hueSlider.addEventListener("input", () =>
three.style.setProperty("--hue", hueSlider.value));
</script>